Landmark Identification from Point Cloud Generated from Geographic Imagery Data

ABSTRACT

Systems and methods for identifying prominent landmarks in a geographic area are provided. More particularly, geographic imagery data, such as panoramic images captured by a camera from a perspective at or near ground level, can be analyzed to identify landmarks depicted in the geographic imagery data. For instance, structure-from-motion techniques can be used to generate a point cloud of tracked features that are located a threshold distance away from one or more camera perspectives associated with the geographic imagery data. Landmarks that are visible from multiple camera perspectives and that are visible from greater distances relative to one or more camera perspectives can be identified as prominent landmarks in a geographic area. A geographic information system can use the prominent landmarks for a variety of purposes, such as for use in providing travel directions, for rendering landmarks in an emphasized style, and/or for constructing/displaying a three-dimensional model of the landmark.

FIELD

The present disclosure relates generally to geographic informationsystems, and more particularly to identifying prominent landmarks fromgeographic imagery data.

BACKGROUND

Geographic information systems provide for the archiving, retrieving,and manipulating of data that has been stored and indexed according togeographic coordinates of its elements. A geographic information systemgenerally includes a variety of data types, including imagery, maps,tables, vector data (e.g. vector representations of roads, parcels,buildings, etc.), three-dimensional models and other data. Improvementsin computer processing power and broadband technology have led to thedevelopment of interactive geographic information systems that allow forthe navigating and displaying of geographic imagery, such as mapimagery, satellite imagery, aerial imagery, street level imagery,three-dimensional models, and other geographic imagery.

The identification of prominent landmarks in geographic informationsystems can be used for a variety of purposes. For instance, prominentor highly visible landmarks can be identified for use in providingtravel directions. As another example, vector-style maps can use thevisual prominence of a landmark to determine whether to render certainlandmarks in an emphasized style relative to other landmarks. As yetanother example, visual prominence of structures can also be used toidentify landmarks that merit the creation of a three-dimensional modelrepresenting the landmark in the geographic information system.

SUMMARY

Aspects and advantages of embodiments will be set forth in part in thefollowing description, or may be obvious from the description, or may belearned through practice of the embodiments.

One example aspect of the present disclosure is directed to acomputer-implemented method implemented by one or more computing devicesfor identifying prominent landmarks in a geographic area. The methodincludes accessing, by the one or more computing devices, geographicimagery data captured from one or more cameras from a perspective at ornear ground level and generating, by the one or more computing devices,a point cloud based at least in part on the geographic imagery data. Thepoint cloud includes a plurality of data points. Each of the pluralityof data points is associated with a tracked feature in the geographicimagery data. The method further includes identifying, by the one ormore computing devices, a subset of data points in the point cloud. Eachdata point in the subset is located at least a threshold distance awayfrom one or more camera perspectives associated with the geographicimagery data. The method further includes matching, by the one or morecomputing devices, one or more data points in the subset with alandmark.

Other aspects of the present disclosure are directed to systems,apparatus, non-transitory computer-readable media, user interfaces anddevices for identifying prominent landmarks in a geographic area.

These and other features, aspects and advantages of various embodimentswill become better understood with reference to the followingdescription and appended claims. The accompanying drawings, which areincorporated in and constitute a part of this specification, illustrateembodiments of the invention and, together with the description, serveto explain the related principles.

BRIEF DESCRIPTION OF THE DRAWINGS

Detailed discussion of embodiments directed to one of ordinary skill inthe art are set forth in the specification, which makes reference to theappended figures, in which:

FIG. 1 depicts a geographic information system according to anembodiment of the present disclosure;

FIG. 2 depicts a flow diagram of a method for identifying prominentlandmarks according to an embodiment of the present disclosure;

FIG. 3 depicts geographic imagery data captured from a perspective at ornear ground level according to an embodiment of the present disclosure;

FIG. 4 depicts a point cloud generated from geographic imagery dataaccording to an embodiment of the present disclosure;

FIG. 5 depicts a representation of the identification of a subset ofdata points in a point cloud that are located at least a thresholddistance from a camera perspective according to an embodiment of thepresent disclosure;

FIG. 6 depicts clustering of data points into point clusters accordingto an embodiment of the present disclosure;

FIG. 7 depicts a flow diagram of a method for prioritizing prominentlandmarks according to an embodiment of the present disclosure;

FIG. 8 depicts a two-dimensional representation of a viewshed accordingto an embodiment of the present disclosure;

FIG. 9 depicts a user interface providing travel directions based atleast in part on an identified landmark according to an embodiment ofthe present disclosure; and

FIG. 10 depicts a computing environment for identifying prominentlandmarks according to an embodiment of the present disclosure.

DETAILED DESCRIPTION

Reference now will be made in detail to embodiments of the invention,one or more examples of which are illustrated in the drawings. Eachexample is provided by way of explanation of the embodiments, notlimitation of the invention. In fact, it will be apparent to thoseskilled in the art that various modifications and variations can be madeto the embodiments without departing from the scope or spirit of theinvention. For instance, features illustrated or described as part ofone embodiment can be used with another embodiment to yield a stillfurther embodiment. Thus, it is intended that aspects of the presentdisclosure cover such modifications and variations.

Overview

Generally, example aspects of the present disclosure are directed tosystems and methods for identifying prominent landmarks in a geographicarea. More particularly, geographic imagery data, such as geographicimages captured by a camera from a perspective at or near ground level,can be analyzed to identify prominent landmarks depicted in thegeographic imagery data. Landmarks that are visible from multiple cameraperspectives and that are visible from greater distances relative to oneor more camera perspectives can be identified as prominent landmarks ina geographic area. A geographic information system can use the prominentlandmarks for a variety of purposes, such as for use in providing traveldirections, for rendering landmarks in an emphasized style, and/or forconstructing or displaying a three-dimensional model of the landmark.

According to particular aspects of the present disclosure, thegeographic imagery data can be processed to identify a point cloud offeatures depicted in the geographic imagery data. In one implementation,a structure-from-motion technique is used to generate the point cloud.The structure-from-motion technique tracks features depicted in thegeographic imagery from multiple different camera perspectives anddetermines the position (e.g. a geographic position) of the trackedfeatures relative to a reference. The point cloud can include aplurality of data points. Each data point can include positioninformation (e.g. latitude, longitude, altitude coordinates, distance toa camera, etc.) and a color or pixel value for the data point. Thegeneration of the point cloud depends on tracked feature points beingvisible from multiple perspectives. The identified features in the pointcloud are therefore distinctive enough to stand out from multipleperspectives.

Once the point cloud has been generated, the point cloud can be filteredto identify a subset of data points in the point cloud that are locateda threshold distance (e.g. 0.5 km to 2 km) away from one or more cameraperspectives associated with the geographic imagery data. For instance,each of the data points in the subset can be a threshold distance from acamera perspective associated with one of the images/views in thegeographic imagery data.

The data points in the subset can be matched with known landmarks andother points of interest. For instance, the position informationassociated with the data points can be correlated with positioninformation for known landmarks and other points of interest to matchthe data points with the landmarks. In one particular implementation, arudimentary clustering of the data points into point clusters can beperformed to facilitate matching of the data points to landmarks andother points of interest. The landmarks and other points of interestmatched with the data points in the subset can be identified asprominent landmarks in the geographic area.

Identifying features using geographic imagery data that includes imagescaptured by a camera from a perspective at or near ground level (e.g.street level images) can focus on landmarks that are typically visibleto individuals as they navigate or otherwise view a particulargeographic area. In addition, landmarks identified from geographicimagery data according to example aspects of the present disclosure canbe biased towards points that are more distant from a camera perspectiveand therefore observable by individuals for a longer time. Moreover, thepoints are distinctive enough to register between nearby viewperspectives in the geographic imagery data. As a result, the identifiedlandmarks can be suitable for many applications in a geographicinformation system. For instance, the identified landmarks can be usefulin providing travel directions to a user.

According to one example aspect of the present disclosure, a score canbe determined for the identified landmarks based on the visibility ofthe identified landmarks.

The score can be used to prioritize the landmarks in the geographicinformation system. More particularly, a viewshed can be determined forone or more of the data points or point clusters in the subset. Theviewshed for a data point in the subset can be the set of points fromwhich the particular data point or point cluster is visible. In aparticular implementation, the viewshed can include the set of cameraperspectives associated with the geographic imagery data that view thedata point or point cluster. Statistical analysis can be performed onthe viewshed to determine a score for a landmark matched with the datapoint. The score for the landmark can be determined based at least inpart on other suitable factors, such as a landmark ranking for thelandmark in a geographic information system. In this way, the score candistinguish between highly visible famous landmarks (e.g. a stadium)from other highly visible landmarks (e.g. a radio tower).

Example Geographic Information Systems

FIG. 1 depicts a geographic information system 100 according to anembodiment of the present disclosure. The geographic information system100 can provide for the archiving, retrieving, and manipulation ofgeospatial data that has been indexed and stored according to geographiccoordinates, such as latitude, longitude, and altitude coordinates,associated with the geospatial data. The system 100 can combinesatellite imagery, photographs, maps, three-dimensional models, vectordata and other geographic data, and search capability so as to enable auser to view imagery of a geographic area and related geographicinformation (e.g., locales such as islands and cities; and points ofinterest such as local restaurants, hospitals, parks, hotels, andschools). The system further allows the user to conduct local searchesand to get travel directions to a location or between two or morelocations. Results can be displayed in a two-dimensional (2D),two-and-half dimensional (2.5D), or three-dimensional (3D)representation of the area of interest. The user can pan, tilt, zoom,and rotate the view to navigate a representation of the area ofinterest.

Referring to FIG. 1, the geographic information system 100 can include aclient-server architecture, where the server system 110 communicateswith one or more clients 130 via a network 140. The network 140 caninclude any suitable combination of wired or wireless networks, such asthe Internet. Although two clients 130 are illustrated in FIG. 1, anynumber of clients 130 can be connected to the server system 110 over thenetwork 140. While the present disclosure is discussed with reference toa client-server architecture, the inherent flexibility of computer-basedsystems allows for a great variety of possible configurations,combinations, and divisions of tasks and functionality between and amongthe components of the system 100. For instance, the systems and methodsdiscussed herein can be implemented using a single computing device oracross multiple computing devices in a parallel or distributed computingsystem.

The server system 110 can include one or more computing devices that caninclude one or more processors and memory. The memory can storecomputer-readable instructions that when executed cause the one or moreprocessers to perform operations. The server system 110 can include orcan be in communication with one or more databases 125. The one or moredatabases 125 can store geospatial data to be served or provided to theclient 130 over the network 140. The one or more databases 125 caninclude image data (e.g. digital maps, satellite images, aerialphotographs, street level imagery, etc.), non-image data such as tabulardata (e.g. digital yellow and white pages), and map layer data (e.g.databases of diners, restaurants, museums, and/or schools; databases ofseismic activity; database of national monuments; etc.). The one or moredatabases 125 can also store information relative to prominent landmarks(e.g. scores and other data) identified according to example aspects ofthe present disclosure. Geospatial data can be stored in one or moredatabases 125 or in some other storage facility accessible to serversystem 110.

The server system 110 can be configured to receive requests forgeographic information, and respond to those requests, via the network140. In one embodiment, the server system 110 encodes the geographicinformation in one or more data files and provides the files to therequestor. The server system 110 can implement a landmark identificationmodule 120. The landmark identification module 120 can be configured toanalyze geographic imagery data to identify prominent landmarksaccording to example aspects of the present disclosure. Informationassociated with the prominent landmarks can be used for a variety ofpurposes, such as for prioritizing landmarks, for providing traveldirections, for selecting landmarks for construction of athree-dimensional model, and/or for other purposes.

The client 130 can include one or more computing devices, such as adesktop, laptop, personal digital assistant (PDA), smartphone, tablet, anavigation system, a handheld GPS system, a wearable computing device, adisplay coupled to one or more processors, or other suitable computingdevice. The client 130 can include one or more processors and memory.The memory can store computer-readable instructions that when executedcause the one or more processors to perform operations.

In one aspect, the client 130 can implement a mapping application 132that allows a user to interact with the geographic information system100. For instance, the mapping application 132 can allow a user torequest maps or other geographic imagery, request travel directions,navigate geographic imagery, perform data searches and/or perform otherfunctions. The mapping application 132 can implement or can beimplemented in conjunction with an example user interface that presentsand receives information from a user, such as a browser.

Note that other modules and components may be included in the system 100and that illustrated system components may be rearranged. For instance,the one or more databases 125 can be integrated into the server system110. Other configurations will be apparent in light of this disclosure,and the present disclosure is not intended to be limited to anyparticular one. Any number of modules can be programmed or otherwiseconfigured to carry out the functionality described herein.

Example Methods for Identification of Landmarks

FIG. 2 depicts a flow diagram of a computer-implemented method (200) foridentification of landmarks according to an embodiment of the presentdisclosure. The method (200) can be implemented by one or more computingdevices, such as one or more of the computing devices depicted in FIG.10. In addition, FIG. 2 depicts steps performed in a particular orderfor purposes of illustration and discussion. Those of ordinary skill inthe art, using the disclosures provided herein, will understand thatvarious steps of any of the methods discussed in the present disclosurecan be omitted, rearranged, combined and/or adapted in various ways.

At (202), the method includes accessing geographic imagery data. Forinstance, geographic imagery data stored in one or morecomputer-readable media can be accessed. The geographic imagery data caninclude images of one or more geographic areas of interest from avariety of different camera perspectives. As used in the presentdisclosure, a camera perspective refers to a location of a camera thatcaptures the imagery. According to particular aspects of the presentdisclosure, the geographic imagery data can include images of ageographic area captured by a camera from camera perspectives at or nearground level (e.g. within 20 feet of the ground level), such as streetlevel imagery. Although the term “street level” imagery is used, theimages can depict non-street areas such as trails and buildinginteriors.

The geographic imagery data can be captured using any suitable imagecapture device. For instance, street level imagery can be captured by adigital camera mounted on top of a vehicle, from a camera angle pointingroughly parallel to the ground, and/or from a camera position at orbelow the legal limit for vehicle heights (e.g. 7-14 feet). Panoramicstreet level imagery can be created by stitching together the pluralityof images taken from different camera perspectives. In a particularimplementation, the geographic imagery data can be captured using arolling shutter technique. The geographic imagery data can be stored inone or more computer-readable media as a set of pixels associated withcolor and brightness values.

FIG. 3 depicts example geographic imagery data 300 captured by one ormore cameras from a perspective at or near ground level that can beaccessed according to an embodiment of the present disclosure. Thegeographic imagery data 300 includes a portion of a panoramic image of ageographic area from a single camera perspective. The geographic imagerydata 300 can include different views of the geographic area (notillustrated) from one or more other camera perspectives. As shown inFIG. 3, the geographic imagery data 300 can depict various landmarks andother points of interest that are visible from a particular cameraperspective. For example, the geographic imagery data 300 can depictlandmark 305, which is visible from the particular camera perspectiveassociated with the geographic imagery data 300.

The accessed geographic imagery data can include representations of ageographic area from many different camera perspectives. For instance,the geographic imagery data can include a plurality of different streetlevel images captured from different camera perspectives. Accordingly,different features in the geographic imagery data can be depicted atdifferent locations relative to the different camera perspectives. Thetracking of these features in the geographic imagery data can be used toidentify position information for the features. As will be discussed inmore detail below, this position information can be used to identifyprominent landmarks in a geographic area.

More particularly at (204) of FIG. 2, the geographic imagery data can beprocessed to generate a point cloud. The point cloud can include aplurality of data points. Each data point can correspond to a trackedfeature in the geographic imagery data. Each data point can provide athree-dimensional position of the feature as well as a color or otherpixel value associated with the tracked feature.

In one implementation, a structure-from-motion technique can be used togenerate the point cloud. The structure-from-motion technique canidentify a plurality of features (e.g. building corners with high imagegradients) using a suitable feature detection image processingtechnique. The feature detection image processing technique can identifyfeatures associated with high image gradients (e.g. in terms of colorand/or brightness) in the geographic imagery data. The detected featurescan be tracked across many different camera perspectives in thegeographic imagery data. By analyzing the correspondence betweenfeatures in the geographic imagery data across different cameraperspectives, the three-dimensional position relative to some referenceof the features can be determined. For instance the latitude, longitude,and altitude of the features and/or distance to the camera perspectivecan be determined from the geographic imagery data. Thethree-dimensional position information can be used to generate the pointcloud of data points. The camera pose (e.g. position and orientation) ofthe geographic imagery data for the multiple different cameraperspectives can also be determined using structure-from-motiontechniques.

FIG. 4 depicts an example point cloud 310 that can be generated from thegeographic imagery data 300 of FIG. 3. The point cloud 310 of FIG. 4includes a plurality of data points associated with differentthree-dimensional positions in the geographic area depicted in thegeographic imagery data 300. Each data point corresponds to a featuretracked in the geographic imagery data. For instance, data point 312 cancorrespond to a feature tracked across multiple different cameraperspectives in the geographic imagery data. In this regard, the datapoints in the point cloud 310 can be representative of distinctivefeatures visible from multiple different camera perspective in thegeographic imagery data.

Referring back to FIG. 2 at (206), a subset of the data points in thepoint cloud can be identified. Each of the data points in the subset canbe located a threshold distance away from one or more cameraperspectives in the geographic imagery data. For instance, the distanceof each data point to one or more camera perspectives that view the datapoint can be determined. The data point can be selected for inclusion inthe subset if one or more of these distances is greater than thethreshold distance. The threshold distance can be set to any suitablevalue. For instance, in a particular embodiment, the threshold distancecan be in the range of 0.5 km to 2 km.

FIG. 5 depicts a representation of an example identification of a subsetof data points in a point cloud that are located a threshold distancefrom a camera perspective according to an embodiment of the presentdisclosure. In particular, structure-from-techniques can be used togenerate a point cloud 330 from geographic imagery data. The geographicimagery data can include imagery captured from a camera perspective 338.While only one camera perspective 338 is illustrated in FIG. 5, multiplecamera perspectives can be associated with the geographic imagery data.

The point cloud 330 includes data points 332 that are within a thresholddistance 335 of the camera perspective 338 and data points 334 that arelocated greater than the threshold distance 335 from the cameraperspective. The data points 334 can be identified for inclusion in thesubset. Certain of the data points 332 may be located greater than athreshold distance from a different camera perspective (notillustrated). Such data points can also be identified for inclusion inthe subset. Data points that are not located greater than a thresholddistance from any camera perspective can be excluded from the subset.

Other suitable criteria can be used in identifying data points forinclusion in the subset. For instance, the data points can be requiredto be located at least a threshold distance from multiple cameraperspectives to be included in the subset. In addition and/or in thealternative, the data points can be required to be viewed from a varietyof different view angles to be included in the subset. For instance,statistical analysis of viewsheds associated with the data points can beperformed to determine whether to include the data points in the subset.The viewshed of a data point includes the set of points in thegeographic area that view the data point. An example viewshed associatedwith a data point will be discussed in more detail below with referenceto FIG. 8.

Once the subset of data points has been identified, the method canoptionally include clustering of the data points in the subset into oneor more point clusters as shown at (208) of FIG. 2. Any suitableclustering technique can be used to cluster the data points. Forinstance, data points located spatially adjacent to one another andhaving similar pixel values can be clustered into a point cluster. FIG.6 depicts a subset of data points 340 that have been clustered intopoint clusters 342, 344, and 346. The clustering of the data points intopoint clusters can facilitate matching of the data points in the subsetwith landmarks.

At (210) of FIG. 2, the method includes matching one or more of the datapoints in the subset (or point clusters if clustering of the data pointsis performed) with known landmarks in the geographic area. The knownlandmarks can be determined from a database of landmarks and otherpoints of interest in a particular geographic area. The database caninclude information associated with the landmarks and other points ofinterest, such as geographic position of the landmarks, appearance ofthe landmarks, size of the landmarks, historical information, and otherinformation. The one or more data points in the subset can be matched tothe landmarks based at least in part on the information in the database.For instance, the position of a data point or point cluster in thesubset can be determined to correspond with the position of a particularlandmark as specified in the database. The data point can be matched tothe landmark sharing the same or similar position.

For example, FIG. 6 depicts a point cluster 344 having a plurality ofdata points. Each of these data points can be associated with geographicposition information. This geographic position information can becompared to the known geographic positions of landmarks in thegeographic area as specified, for instance, in a database. The landmark305 depicted in FIG. 3 can be associated with a geographic position thatcorresponds to the geographic positions of one or more of the datapoints in the point cluster 344 of FIG. 6. As a result, the pointcluster 344, including its data points, can be matched with the landmark305 depicted in FIG. 3. Other suitable techniques can be used to matchthe data points with landmarks without deviating from the scope of thepresent disclosure.

The landmarks matched with the one or more data points in the subset canbe identified as prominent landmarks in a geographic information systemas shown at (212) of FIG. 2. The identified prominent landmarks can thenbe used by a geographic information system for a variety of purposes aswill be discussed in further detail below.

Prioritizing of Prominent Landmarks

An example aspect of the present disclosure is directed to prioritizingprominent landmarks in a geographic information system. It can bedesirable to downselect and/or further refine the set of identifiedprominent landmarks to identify the most prominently visible landmarksin a geographic area. According to aspects of the present disclosure, ascore can be computed for the prominent landmarks based on theirvisibility and other factors. The landmarks can be prioritized relativeto other landmarks in the geographic information system based on thescores.

FIG. 7 depicts a flow diagram of a computer-implemented method (400) forprioritizing landmarks according to an embodiment of the presentdisclosure. The method (400) can be implemented by one or more computingdevices, such as one or more of the computing devices depicted in FIG.10. At (402), the method can include identifying prominent landmarks.For instance, prominent landmarks can be identified using thecomputer-implemented method (200) depicted in FIG. 2. In particular, apoint cloud can be generated from geographic imagery data and landmarkscan be matched to particular data points in the point cloud.

At (404) of FIG. 7, a viewshed is determined for a data point in thepoint cloud. The viewshed of a data point can be a set of points in thegeographic area that can view the data point. According to particularaspects of the present disclosure, the viewshed can be approximated asthe set of camera perspectives associated with the geographic imagerydata that view the data point. In this way, the computation of theviewshed can be comparatively cheap when compared to determiningviewsheds based on a full three-dimensional determination of visibility.

FIG. 8 depicts a two-dimensional representation of a viewshed 420 for adata point 410 according to an example embodiment of the presentdisclosure. In particular, viewshed 420 can be the set of points in ageographic area that view the data point 410. The viewshed 420 can beapproximated as the set of camera perspectives 422 associated with thegeographic imagery data that view the data point 410.

At (406) of FIG. 7, a score for a landmark matched to the data point isdetermined based at least in part on the viewshed. Statistics can becalculated with regard to the set of camera perspectives in the viewshedto assess the visibility of the landmark. For instance, the score can bedetermined based on the number of camera perspectives that view the datapoint. In addition and/or in the alternative, geometric properties ofthe viewshed (e.g. area, distance of data point from centroid, etc.) canbe used to determine the score for the landmark.

The score for the landmark can be determined based at least in part onother factors associated with the landmark in the geographic informationsystem. For instance, the geographic information system can establish alandmark ranking independent of the visibility of the landmark todetermine display priority and for other purposes in the geographicinformation system. This landmark ranking can be based on factors suchas size, historical data, popularity, relevance to search queries, etc.The landmark ranking can be used to determine the score for theidentified prominent landmarks. In this way, famous highly visiblelandmarks can receive higher scores than less-famous but highly visiblelandmarks.

At (408), the landmarks can be prioritized in the geographic informationsystem based at least in part on the scores. For instance, the landmarkrankings of landmarks in the geographic information system can beadjusted to favor landmarks with higher scores. In this way, the scoresassociated with the identified landmarks can enrich the data associatedwith the geographic information system.

Example Applications of Identified Landmarks in a Geographic InformationSystem

The landmarks identified according to example aspects of the presentdisclosure can be used by a geographic information system for a varietyof purposes. For instance, the prominent landmarks can be used inconjunction with providing travel directions. In particular, thegeographic information system can refer to a particular prominentlandmark when providing travel directions a user. Because the prominentlandmarks can be identified based on data points that are visible frommultiple different perspectives and from greater distances, theprominent landmarks can be particularly suitable for navigating a userthrough a geographic area because of the enhanced visibility of thelandmark.

For instance, FIG. 9 depicts a user interface 500 for a geographicinformation system according to an embodiment of the present disclosure.The user interface 500 can be presented on the display 510 of acomputing device. The user interface can present geographic imagery 512of a geographic area in a viewport. The geographic imagery 512 caninclude travel directions 516 indicating a preferred route fornavigation between an origin and a destination. The user interface 500can also present a navigation recommendation 518 to the user. Thenavigation recommendation can recommend to the user to turn left at aparticular landmark. The particular landmark selected for use in thenavigation recommendation 518 can be a prominent landmark identifiedaccording to example aspects of the present disclosure.

In another embodiment of the present disclosure, the prominent landmarkscan be rendered in an emphasized style relative to other landmarks in arepresentation of a geographic area presented by a geographicinformation system. For instance, the geographic information system canpresent a vector style map presenting vector representations of variouslandmarks in a geographic area. The vector representations associatedwith prominent landmarks identified according to example aspects of thepresent disclosure can be rendered in a bold or otherwise emphasizedstyle relative to vector representations associated with other landmarkssuch that the prominent landmarks stand out in the representation of thegeographic area. Any suitable style can be used to emphasize the vectorrepresentation of prominent landmarks relative to other vectorrepresentations without deviating from the scope of the presentdisclosure.

For instance, FIG. 9 depicts geographic imagery 512 depicted in a userinterface 500 that includes vector style representations of landmarks.The vector representation of landmark 515 is rendered in an emphasized(e.g. bold) style relative to the vector representations of the otherlandmarks in the geographic imagery 512. The landmark 515 selected to berendered in an emphasized style can be a prominent landmark identifiedaccording to example aspects of the present disclosure.

In yet another embodiment of the present disclosure, the prominentlandmarks can be used to identify landmarks for constructing athree-dimensional model. Certain geographic information system canprovide three-dimensional models of various landmarks and terrain in ageographic area. Three-dimensional models can sometimes be timeintensive and/or computationally expensive to generate and/or display.Prominent landmarks identified according to example aspects of thepresent disclosure can be selected for creation and/or display of athree-dimensional model to enhance the appearance of the geographicimagery.

Example Computing Environments for Identifying Prominent Landmarks

FIG. 10 depicts a computing system 600 that can be used to implement themethods and systems for identifying and prioritizing prominent landmarksaccording to example aspects of the present disclosure. The system 600is implemented using a client-server architecture that includes a server610 that communicates with one or more client devices 630 over a network640. The system 600 can be implemented using other suitablearchitectures, such as a single computing device.

The system 600 includes a server 610, such as a web server. The server610 can host a geographic information system. The server 610 can beimplemented using any suitable computing device(s). The server 610 canhave one or more processors 612 and a memory 614. The server 610 canalso include a network interface used to communicate with one or moreclient devices 630 over a network 640. The network interface can includeany suitable components for interfacing with one more networks,including for example, transmitters, receivers, ports, controllers,antennas, or other suitable components.

The one or more processors 612 can include any suitable processingdevice, such as a microprocessor, microcontroller, integrated circuit,or other suitable processing device. The memory 614 can include anysuitable computer-readable medium or media, including, but not limitedto, non-transitory computer-readable media, RAM, ROM, hard drives, flashdrives, or other memory devices. The memory 614 can store informationaccessible by the one or more processors 612, including instructions 616that can be executed by the one or more processors 612. The instructions616 can be any set of instructions that when executed by the one or moreprocessors 612, cause the one or more processors 612 to provide desiredfunctionality. For instance, the instructions 616 can be executed by theone or more processors 612 to implement a structure-from-motion (SFM)module 620, a filtering module 622, a matching module 624, a viewshedmodule 626, a ranking module 628 and/or other suitable modules.

The SFM module 620 can be configured to process geographic imagery datacaptured from one or more cameras to generate a point cloud including aplurality of data points. The filtering module 622 can be configured toidentify a subset of data points in the point cloud located at least athreshold distance away from one or more camera perspectives associatedwith the geographic imagery data. The matching module 624 can beconfigured to match one or more data points in the subset with alandmark. The viewshed module 626 can be configured to determine aviewshed for one or more data points in the subset. The ranking module628 can be configured to determine a score for a landmark based at leastin part on the viewshed of a data point associated with the landmark.

It will be appreciated that the term “module” refers to computer logicutilized to provide desired functionality. Thus, a module can beimplemented in hardware, application specific circuits, firmware and/orsoftware controlling a general purpose processor. In one embodiment, themodules are program code files stored on the storage device, loaded intomemory and executed by a processor or can be provided from computerprogram products, for example computer executable instructions, that arestored in a tangible computer-readable storage medium such as RAM, harddisk or optical or magnetic media. When software is used, any suitableprogramming language or platform can be used to implement the module.

Memory 614 can also include data 618 that can be retrieved, manipulated,created, or stored by the one or more processor 612. The data 618 caninclude geographic data such as landmark data and geographic imagerydata. The data 618 can be stored in one or more databases. The one ormore databases can be connected to the server 610 by a high bandwidthLAN or WAN, or can also be connected to server 610 through network 640.The one or more databases can be split up so that they are located inmultiple locales.

The server 610 can exchange data with one or more client devices 630over the network 640. Although two client devices 630 are illustrated inFIG. 10, any number of client devices 630 can be connected to the server610 over the network 640. The client devices 630 can be any suitabletype of computing device, such as a general purpose computer, specialpurpose computer, laptop, desktop, mobile device, smartphone, tablet,wearable computing device, a display with one or more processors, orother suitable computing device.

Similar to the server 610, a client device 630 can include one or moreprocessor(s) 632 and a memory 634. The one or more processor(s) 632 caninclude one or more central processing units (CPUs), graphics processingunits (GPUs) dedicated to efficiently rendering images, and or otherprocessing devices. The memory 634 can store information accessible bythe one or more processors 632, including instructions 636 that can beexecuted by the one or more processors 632 and data 638. For instance,the memory 634 can store instructions 636 for implementing a userinterface and a mapping application for a geographic information system

The client device 630 can include various input/output devices forproviding and receiving information from a user, such as a touch screen,touch pad, data entry keys, speakers, and/or a microphone suitable forvoice recognition. For instance, the client device 630 can have adisplay 635 for presenting geographic imagery of a geographic area to auser.

The client device 630 can also include a network interface used tocommunicate with one or more remote computing devices (e.g. server 610)over the network 640. The network interface can include any suitablecomponents for interfacing with one more networks, including forexample, transmitters, receivers, ports, controllers, antennas, or othersuitable components.

The network 640 can be any type of communications network, such as alocal area network (e.g. intranet), wide area network (e.g. Internet),or some combination thereof. The network 640 can also include a directconnection between a client device 630 and the server 610. In general,communication between the server 610 and a client device 630 can becarried via network interface using any type of wired and/or wirelessconnection, using a variety of communication protocols (e.g. TCP/IP,HTTP, SMTP, FTP), encodings or formats (e.g. HTML, XML), and/orprotection schemes (e.g. VPN, secure HTTP, SSL).

The technology discussed herein makes reference to servers, databases,software applications, and other computer-based systems, as well asactions taken and information sent to and from such systems. One ofordinary skill in the art will recognize that the inherent flexibilityof computer-based systems allows for a great variety of possibleconfigurations, combinations, and divisions of tasks and functionalitybetween and among components. For instance, server processes discussedherein may be implemented using a single server or multiple serversworking in combination. Databases and applications may be implemented ona single system or distributed across multiple systems. Distributedcomponents may operate sequentially or in parallel.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, the scope of the presentdisclosure is by way of example rather than by way of limitation, andthe subject disclosure does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

1-20. (canceled)
 21. A computer-implemented method, the methodcomprising: accessing, by the one or more processors, geographic imagerydata captured from one or more cameras from a perspective at or nearground level; generating, by the one or more processors, a point cloudbased at least in part on the geographic imagery data, the point cloudcomprising a plurality of data points, each of the plurality of datapoints associated with a tracked feature in the geographic imagery data;identifying, by the one or more processors, a subset of data points inthe point cloud, each data point in the subset located at least athreshold distance away from one or more camera perspectives associatedwith the geographic imagery data; matching, by the one or moreprocessors, one or more data points in the subset of data points with alandmark; determining, by the one or more processors, a landmark rankingfor the landmark based at least in part on the one or more data points;and providing, by the one or more processors, data for rendering thelandmark in a different style in a representation of a geographic arearelative to other landmarks in the geographic area.
 22. Thecomputer-implemented method of claim 21, wherein the different style isan emphasized style relative to the other landmarks.
 23. Thecomputer-implemented method of claim 21, wherein the method comprisesdetermining, by the one or more processors, a viewshed associated withthe one or more data points in the subset of data points.
 24. Thecomputer-implemented method of claim 23, wherein the viewshed for eachof the one or more data points in the subset of data points comprises aset of camera perspectives associated with the geographic imagery datathat view the data point.
 25. The computer-implemented method of claim23, wherein the method comprises determining, by the one or moreprocessors, a score for the landmark based at least in part on theviewshed determined for the one or more data points.
 26. Thecomputer-implemented method of claim 25, wherein the score for thelandmark is determined, by the one or more processors, based at least inpart on a landmark ranking associated with the landmark in a geographicinformation system.
 27. The computer-implemented method of claim 25,wherein the score is used to prioritize landmarks in a geographicinformation system.
 28. The computer-implemented method of claim 21,wherein the point cloud is generated by the one or more processors usinga structure-from-motion technique.
 29. The computer-implemented methodof claim 21, wherein matching, by the one or more processors, one ormore data points in the subset of data points with a landmark comprises:clustering, by the one or more processors, one or more data points inthe subset of data points into a point cluster; and matching, by the oneor more processors, the point cluster with the landmark.
 30. Thecomputer-implemented method of claim 21, wherein the geographic imagerydata comprises street level images captured by the camera at aperspective associated with a ground level.
 31. A tangible,non-transitory computer-readable media storing computer-readableinstructions that when executed by one or more processors cause the oneor more processors to perform operations, the operations comprising:accessing geographic imagery data captured from one or more cameras froma perspective at or near ground level; generating a point cloud based atleast in part on the geographic imagery data using astructure-from-motion technique, the point cloud comprising a pluralityof data points, each of the plurality of data points associated with atracked feature in the geographic imagery data; identifying a subset ofdata points in the point cloud, each data point in the subset of datapoints located at least a threshold distance away from one or morecamera perspectives associated with the geographic imagery data;matching one or more data points in the subset of data points with alandmark; determining a landmark ranking for the landmark based at leastin part on the one or more data points; determining a viewshedassociated with the one or more data points in the subset of datapoints, the viewshed for each of the one or more data points in thesubset of data points comprising a set of camera perspectives associatedwith the geographic imagery data that view the one or more data points;and determining a score for the landmark based at least in part on theviewshed determined for the one or more data points; wherein the scoreis used to prioritize landmarks in a geographic information system. 32.A tangible, non-transitory computer-readable media of claim 33, whereinthe operation of matching one or more data points in the subset of datapoints with a landmark comprises: clustering one or more data points inthe subset of data points into a point cluster; and matching the pointcluster with the landmark.